package 力扣._3408_设计任务管理器;

import java.util.*;

class TaskManager {

    // 优先队列
    TreeSet<int[]> taskSet = new TreeSet<>((a, b) -> {
        if (a[2] != b[2]) return Integer.compare(b[2], a[2]); // 优先级降序
        else return Integer.compare(b[1], a[1]); // taskId降序
    });

    // 存储数组对象
    Map<Integer,int[]> map = new HashMap<>();

    public TaskManager(List<List<Integer>> tasks) {
        for (List<Integer> task : tasks) {
            int[] t = {task.get(0), task.get(1), task.get(2)};
            taskSet.add(t);
            map.put(task.get(1),t);
        }
    }
    
    public void add(int userId, int taskId, int priority) {
        int[] task = {userId, taskId, priority};
        taskSet.add(task);
        map.put(taskId, task);
    }
    
    public void edit(int taskId, int newPriority) {
        int[] task = map.get(taskId);
        taskSet.remove(task);
        task[2]=newPriority;
        taskSet.add(task);
    }
    
    public void rmv(int taskId) {
        int[] task = map.get(taskId);
        taskSet.remove(task);
        map.remove(taskId);
    }
    
    public int execTop() {
        int[] task = taskSet.pollFirst();
        if (task==null)
            return -1;
        return task[0];

    }
}
